关于CMakeLists自定义头文件、源文件的配置 您所在的位置:网站首页 c语言 自定义头文件 关于CMakeLists自定义头文件、源文件的配置

关于CMakeLists自定义头文件、源文件的配置

2024-02-03 20:21| 来源: 网络整理| 查看: 265

1、自定义头文件

如果在功能包下面的include下创建了自定义的.h文件,在配置CMakeLists时需要把下面代码的注释解开;

include_directories( include ${catkin_INCLUDE_DIRS} )

2、自定义源文件

如果功能包的src下有多个cpp文件,但是想在一个节点下运行,一共有两种方法,自我感觉下面的方法1比较简单,

${PROJECT_NAME}:表示以包名生成的一个名字;${PROJECT_SOURCE_DIR}:表示该包所在的文件夹,

方法1

add_executable(${PROJECT_NAME}_node src/hello.cpp src/use_hello.cpp)

直接将src下的多个cpp文件都添加进该命令行,然后将下面代码的注释给解开即可

add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) target_link_libraries(${PROJECT_NAME}_node ${catkin_LIBRARIES} )

如果有用到其他包里的源文件,也可以直接添加到可执行命令行,下面这行命令的意思是获取该包所在上级目录toollib的src下的源文件,打包给SRC_LIST,并按下面的命令添加到可执行文件,即可。

aux_source_directory(${PROJECT_SOURCE_DIR}/../toollib/src SRC_LIST) add_executable(${PROJECT_NAME}_node src/hello.cpp src/use_hello.cpp ${SRC_LIST} )

方法2(仅测试有两个cpp文件)

添加c++配置文件(main函数的执行要依赖于这个文件)

add_library(head_src include/${PROJECT_NAME}/hello.h src/hello.cpp )

head_src是自定义的,然后依次添加头文件、源文件,

然后添加可执行文件,可执行文件只添加有main函数的cpp文件,

add_executable(use_hello src/use_hello.cpp)

use_hello名字是自定义的,当然也可以用默认的,这个名字是运行时的节点名,它要与target_link_libraries里的${PROJECT_NAME}_node相对应,一个地方改了,另一个地方也要改。

然后是配置target_link_libraries,如下:use_hello是main函数的cpp文件,它的执行依赖于head_src

target_link_libraries(head_src ${catkin_LIBRARIES} ) target_link_libraries(use_hello head_src ${catkin_LIBRARIES} )

3、让一个包里src下不同的cpp文件分别生成不同的运行节点

配置CMakeLists时,在添加可执行文件行,给不同的cpp文件分别起上不同的名字,然后在target_link_libraries也分别对应上相应的名字即可。

add_executable(haha01 src/haha01.cpp ) add_executable(hear01 src/hear01.cpp ) add_executable(person_pub src/demo03.cpp ) add_executable(person_sub src/demo04.cpp ) target_link_libraries(haha01 ${catkin_LIBRARIES} ) target_link_libraries(hear01 ${catkin_LIBRARIES} ) target_link_libraries(person_pub ${catkin_LIBRARIES} ) target_link_libraries(person_sub ${catkin_LIBRARIES} )

以上仅供参考,欢迎交流学习。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有